﻿#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

//struct A
//{
//	int _a : 2;
//	int _b : 5;
//	int _c : 10;
//	int _d : 30;
//
//};
//
//struct B
//{
//	int _a;
//	int _b;
//	int _c;
//	int _d;
//
//};
//
//int main()
//{
//	printf("%d\n", sizeof(struct A));
//	printf("%d\n", sizeof(struct B));
//
//	return 0; 
//}

//struct S
//{
//	char a : 3;
//	char b : 4;
//	char c : 5;
//	char d : 4;
//};
//int main()
//{
//	struct S s = { 0 };
//	s.a = 10;
//	s.b = 12;
//	s.c = 3;
//	s.d = 4;
//
//	printf("%d\n", sizeof(struct S));
//	return 0;
//}


//struct A
//{
//	int _a : 2;
//	int _b : 5;
//	int _c : 10;
//	int _d : 30;
//};
//int main()
//{
//	struct A sa = { 0 };
//	//scanf("%d", &sa._b);//这是错误的
//
//	//正确的⽰范
//	int b = 0;
//	scanf("%d", &b);
//	sa._b = b;
//	return 0;
//}
//struct S
//{
//	char c;
//	int i;
//};
////联合体/共用体
//union U
//{
//	char c;
//	int i;
//};
//int main()
//{
//	union U u ={ 0 };
//	printf("%d\n", sizeof(u));
//	printf("%p\n", &u);
//	printf("%p\n", &(u.i));
//	printf("%p\n", &(u.c));
//	 
//	return 0;
//}
// 

//代码2
//#include <stdio.h>
////联合类型的声明
//union Un
//{
//	char c;
//	int i;
//};
//int main()
//{
//	//联合变量的定义
//	union Un un = { 0 };
//	un.i = 0x11223344;
//	un.c = 0x55;
//	printf("%x\n", un.i);
//	return 0;
//}

//union Un1
//{
//	char c[5];//5   
//	int i;//4     
//};
//union Un2
//{
//	short c[7];//14
//	int i;//4
//};
//int main()
//{
//	//下⾯输出的结果是什么？
//	printf("%d\n", sizeof(union Un1));//8
//	printf("%d\n", sizeof(union Un2));//16
//	return 0;
//}

//
//
//struct gift_list
//{
//	int stock_number;//库存量
//	double price; //定价
//	int item_type;//商品类型
//
//	union {
//		struct
//		{
//			char title[20];//书名
//			char author[20];//作者
//			int num_pages;//⻚数
//		}book;
//		struct
//		{
//			char design[30];//设计
//		}mug;
//		struct
//		{
//			char design[30];//设计
//			int colors;//颜⾊
//			int sizes;//尺⼨
//		}shirt;
//	}item;
//};
//
//int main()
//{
//	struct gift_list gl = { 0 };
//	gl.stock_number = 100;
//	gl.price = 25;
//	gl.item_type = 2;
//	gl.item.book;
// return 0 ;
//}

//写一个程序，判断当前机器是大端还是小端

//
//int main()
//{
//	int a = 1;
//	if (*(char*)&a == 1)
//	{
//		printf("小端\n");
//	}
//	else
//	{
//		printf("大端\n");
//	}
//
//	return 0 ;
//}

//int main()
//{
//	union
//	{
//		char c;
//		int i;
//
//	}u;
//
//	u.i = 1;
//	if (u.c == 1)
//	{
//		printf("大端\n");
//
//	}
//	else
//	{
//		printf("小端\n");
//	}
//
//	return 0;
//}
//int check_sys()
//{
//	union
//	{
//		char c;
//		int i;
//	}u;
//	u.i = 1;
//	return u.c;
//}
//
//
//int main()
//{
//	if (check_sys()==1)
//	{
//		printf("小端\n");
//		
//	}
//	else
//	{
//		printf("大端\n");
//	}
//
//	return 0;
//}


//enum Day//星期
//{
//	//列出的是枚举类型的可能值
//	//这些列出的可能指被称为：枚举常量
//	Mon,
//	Tues,
//	Wed,
//	Thur,
//	Fri,
//	Sat,
//	Sun
//};
//
//enum Sex//性别
//{
//	MALE=4,
//	FEMALE=7,
//	SECRET=1
//};
//
//
//int main()
//{
//	
//	//printf("%d %d %d %d %d %d %d\n", Mon, Tues, Wed, Thur, Fri, Sat, Sun);
//	//printf("%d %d %d\n", MALE, FEMALE, SECRET);
//	enum Sex s = MALE;
//	enum Day d = Sun;
//
//
//	return 0;
//}
//void menu()
//{
//	printf("**********************\n");
//	printf("****1.add  2.sub******\n");
//	printf("****3.mul  4.div******\n");
//	printf("****0.exit      ******\n");
//	printf("**********************\n");
//
//
//
//}enum Option
//{
//	EXIT,
//	ADD,
//	SUB,
//	MUL,
//	DIV
//};
//#define XOR 5
//int main()
//{
//	int input = 0;
//	do
//	{
//		menu();
//		printf("请选择：");
//		scanf("%d", &input);
//		switch (input)
//		{
//		case ADD:
//			break;
//		case MUL:
//			break;
//		default:
//			break;
//		}
//	} while (input);
//	return 0;
//}

//
//enum Color//颜⾊
//{
//	RED = 1,
//	GREEN = 2,
//    BLUE = 4
//};
//int main()
//{
//	enum Color clr = GREEN;
//	//使用枚举常量给枚举变量赋值
//	enum Color clr2 = 2;//err
//	printf("%d\n", sizeof(clr));
//	return 0;
//}


//int main()
//{
//	int a = 10;//申请4个字节
//	char c = 'w';//申请1个字节
//
//	int arr[30] = { 0 };
//	//申请40个字节，申请好后不能修改
//	//变长数组只是说数组的大小可以使用变量来指定
//	//一旦数组创建好后，依然不能调整大小
//	//申请的空间大小不能灵活处理、
//	//C语言，动态内存，给程序员权限
//	//自己申请，使用完后，自己释放
//	return 0;
//}

#include<stdlib.h>
int main()
{
	//申请10个整型空间-40个字节
	int*p=(int*)malloc(10 * sizeof(int));
	if (p == NULL)
	{
		perror("melloc");
		return 1;
	}
	//使用空间
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		*(p + i) = i;
	}
	//0 1 2...
	for (i = 0; i < 10; i++)
	{
		printf("%d ", p[i]);
	}
	return 0;
}